77. 执行器(Actuator)

77.1 改变HTTP端口或执行器端点的地址

在一个单独的应用中,执行器的HTTP端口默认和主HTTP端口相同。想要让应用监听不同的端口,你可以设置外部属性management.port。为了监听一个完全不同的网络地址(比如,你有一个用于管理的内部网络和一个用于用户应用程序的外部网络),你可以将management.address设置为一个可用的IP地址,然后将服务器绑定到该地址。

更多详情可查看ManagementServerProperties源码和'Production-ready特性'章节中的Section 47.3, “Customizing the management server port”

77.2 自定义WhiteLabel错误页面

Spring Boot安装了一个'whitelabel'错误页面,如果你遇到一个服务器错误(机器客户端消费的是JSON,其他媒体类型则会看到一个具有正确错误码的合乎情理的响应),那就能在客户端浏览器中看到该页面。你可以设置error.whitelabel.enabled=false来关闭该功能,但通常你想要添加自己的错误页面来取代whitelabel。确切地说,如何实现取决于你使用的模板技术。例如,你正在使用Thymeleaf,你将添加一个error.html模板。如果你正在使用FreeMarker,那你将添加一个error.ftl模板。通常,你需要的只是一个名称为errorView,或一个处理/error路径的@Controller。除非你替换了一些默认配置,否则你将在你的ApplicationContext中找到一个BeanNameViewResolver,所以一个id为error@Bean可能是完成该操作的一个简单方式,详情可参考ErrorMvcAutoConfiguration

查看Error Handling章节,了解如何将处理器(handlers)注册到servlet容器中。

77.3 Actuator和Jersey

执行器HTTP端点只有在基于Spring MVC的应用才可用,如果想使用Jersey和执行器,你需要启用Spring MVC(添加spring-boot-starter-web依赖)。默认情况下,Jersey和 Spring MVC分发器servlet被映射到相同路径(/)。你需要改变它们中的某个路径(Spring MVC可以配置server.servlet-path,Jersey可以配置spring.jersey.application-path)。例如,如果你在application.properties中添加server.servlet-path=/system,你将在/system访问执行器HTTP端点。